'\" t
.\"     Title: git-squash-branch
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 05/07/2025
.\"    Manual: Chromium depot_tools Manual
.\"    Source: depot_tools fab0a429
.\"  Language: English
.\"
.TH "GIT\-SQUASH\-BRANCH" "1" "05/07/2025" "depot_tools fab0a429" "Chromium depot_tools Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-squash-branch \- Takes all commits in a single branch and replaces them with a single commit\&.
.SH "SYNOPSIS"
.sp
.nf
\fIgit squash\-branch\fR [\-m <message>]
.fi
.sp
.SH "DESCRIPTION"
.sp
\fBgit squash\-branch\fR is a simple helper command\&. It takes all the commits on the current branch from the \fImerge_base\fR to HEAD, and reduces them to a single commit\&. The new commit will contain a summary of all the commits which were squashed, preceded by a header message indicating that it\(cqs the result of a squash (or the message you pass on the command line\&.)\&.
.sp
Squashing branches is useful when trying to rebase\-update over branches which were pushed to their upstream (or committed by the \fICommit Queue\fR), and then conflicting changes landed in upstream on top of the push/commit\&. If you know that your branch was committed but \fBgit-rebase-update\fR(1) isn\(cqt able to automatically clean it, you can squash the troublesome branch before \fBgit rebase\-update\fR, and then when \fBgit rebase\-update\fR presents the conflict, you can verify that the conflict diff is what you expected (and then skip it with \fBgit rebase \-\-skip\fR)\&.
.SH "OPTIONS"
.PP
\-m <message>, \-\-message=<message>
.RS 4
Optional message to use for the first line of the squashed commit\&. If omitted, it defaults to "git squash commit for <branch>\&."\&.
.RE
.SH "EXAMPLE"
.sp

.sp
.if n \{\
.RS 4
.\}
.nf
\fB$ git map\fR
* \fBd0fb9c7283\fR	\fB(HEAD \-> frozen_branch\fR\fB) \fR2014\-04\-10 ~ FREEZE\&.unindexed
* \fBf48f415e0f\fR	2014\-04\-10 ~ modfile
* \fB4c5b9c0afd\fR	2014\-04\-10 ~ a deleted file
* \fBf7ce1e4b36\fR	\fB(fixit\fR\fB) \fR2014\-04\-10 ~ Add neat feature
* \fB3726937ae6\fR	2014\-04\-10 ~ Epic README update
| * \fB14db2e5a60\fR	\fB(cool_feature\fR\fB) \fR2014\-04\-10 ~ Respond to CL comments
| | * \fBee3f972810\fR	\fB(subfeature\fR\fB) \fR2014\-04\-10 ~ integrate with CoolService
| | * \fB4f9f5082c8\fR	2014\-04\-10 ~ slick commenting action
| |/
| * \fB7d84f8580a\fR	2014\-04\-10 ~ another improvement    <(\fBsubfeature\fR)
| * \fB27abea4b40\fR	\fB(spleen_tag\fR\fB) \fR2014\-04\-10 ~ Refactor spleen
| * \fBd8abe739e3\fR	2014\-04\-10 ~ Add widget
|/
* \fBbeec6f4746\fR	\fB(origin/main\fR\fB, origin/HEAD\fR\fB) \fR2014\-04\-10 ~ Make ReflectorImpl use mailboxes    <(\fBfixit, cool_feature\fR)
* \fB41290e02b7\fR	2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on uclibc builds
* \fBa76fde7b7b\fR	2014\-04\-10 ~ [fsp] Add requestUnmount() method together with the request manager\&.
* \fB9de7a713b3\fR	2014\-04\-10 ~ linux_aura: Use system configuration for middle clicking the titlebar\&.
* \fB073b0c203a\fR	2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewRenderView
* \fB2250f532d7\fR	2014\-04\-10 ~ ozone: evdev: Filter devices by path
* \fB33a7a742b7\fR	2014\-04\-10 ~ Always output seccomp error messages to stderr


\fB$ git squash\-branch \-m \*(Aqcool squash demo\*(Aq\fR
\fB$ git map\fR
* \fB98e69e80b9\fR	\fB(HEAD \-> frozen_branch\fR\fB) \fR2014\-04\-10 ~ cool squash demo
* \fBf7ce1e4b36\fR	\fB(fixit\fR\fB) \fR2014\-04\-10 ~ Add neat feature
* \fB3726937ae6\fR	2014\-04\-10 ~ Epic README update
| * \fB14db2e5a60\fR	\fB(cool_feature\fR\fB) \fR2014\-04\-10 ~ Respond to CL comments
| | * \fBee3f972810\fR	\fB(subfeature\fR\fB) \fR2014\-04\-10 ~ integrate with CoolService
| | * \fB4f9f5082c8\fR	2014\-04\-10 ~ slick commenting action
| |/
| * \fB7d84f8580a\fR	2014\-04\-10 ~ another improvement    <(\fBsubfeature\fR)
| * \fB27abea4b40\fR	\fB(spleen_tag\fR\fB) \fR2014\-04\-10 ~ Refactor spleen
| * \fBd8abe739e3\fR	2014\-04\-10 ~ Add widget
|/
* \fBbeec6f4746\fR	\fB(origin/main\fR\fB, origin/HEAD\fR\fB) \fR2014\-04\-10 ~ Make ReflectorImpl use mailboxes    <(\fBcool_feature, fixit\fR)
* \fB41290e02b7\fR	2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on uclibc builds
* \fBa76fde7b7b\fR	2014\-04\-10 ~ [fsp] Add requestUnmount() method together with the request manager\&.
* \fB9de7a713b3\fR	2014\-04\-10 ~ linux_aura: Use system configuration for middle clicking the titlebar\&.
* \fB073b0c203a\fR	2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewRenderView
* \fB2250f532d7\fR	2014\-04\-10 ~ ozone: evdev: Filter devices by path
* \fB33a7a742b7\fR	2014\-04\-10 ~ Always output seccomp error messages to stderr
.fi
.if n \{\
.RE
.\}
.sp
.SH "SUGGESTED ALIASES"
.sp
Some common short\-hand aliases\&. Feel free to add these to your \fI~/\&.gitconfig\fR file\&.
.sp
.if n \{\
.RS 4
.\}
.nf
[alias]
  squash = squash\-branch
.fi
.if n \{\
.RE
.\}
.sp
.SH "SEE ALSO"
.sp
\fBgit-rebase-update\fR(1)
.SH "CHROMIUM DEPOT_TOOLS"
.sp
Part of the chromium \fBdepot_tools\fR(7) suite\&. These tools are meant to assist with the development of chromium and related projects\&. Download the tools by checking out the \m[blue]\fBgit repository\fR\m[]\&\s-2\u[1]\d\s+2\&.
.SH "NOTES"
.IP " 1." 4
git repository
.RS 4
\%https://chromium.googlesource.com/chromium/tools/depot_tools.git
.RE
